Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 19 Weitere Steuerelemente
  gp 19.1 Bildlaufleisten mit »HScrollBar« und »VScrollBar«
  gp 19.2 Schieberegler mit der Klasse »TrackBar«
  gp 19.3 Das »ProgressBar«-Steuerelement
  gp 19.4 Drehfeld-Steuerelemente (»UpDown«-Steuerelemente)
    gp 19.4.1 Das »NumericUpDown«-Steuerelement
    gp 19.4.2 Das »DomainUpDown«-Steuerelement
  gp 19.5 Das »Timer«-Steuerelement
  gp 19.6 Die Klasse »ErrorProvider«
  gp 19.7 Steuerelemente für die Datums- und Zeitangabe
    gp 19.7.1 Das Steuerelement »MonthCalendar«
    gp 19.7.2 Das Steuerelement »DateTimePicker«
  gp 19.8 Das »Panel«-Steuerelement
  gp 19.9 Das Steuerelement »NotifyIcon«
  gp 19.10 Bildanzeige mit »PictureBox«
  gp 19.11 Eine Liste mit Symbolen mit »ImageList« bereitstellen
    gp 19.11.1 Die Eigenschaften der Klasse »ImageList«
    gp 19.11.2 Die Bildliste füllen
  gp 19.12 Registerkarten mit »TabControl«
    gp 19.12.1 Die Klasse »TabControl«
    gp 19.12.2 Objekte vom Typ »TabPage«
  gp 19.13 Das »TreeView«-Steuerelement
    gp 19.13.1 Knotenpunkte im »TreeView« definieren
    gp 19.13.2 Eigenschaften des »TreeView«-Steuerelements
    gp 19.13.3 Die Unterstützung der Entwicklungsumgebung
    gp 19.13.4 Die Ereignisse des »TreeView«-Steuerelements
    gp 19.13.5 Weitere Eigenschaften und Methoden des »TreeView«-Objekts
    gp 19.13.6 Eigenschaften und Methoden des »TreeNode«-Objekts
    gp 19.13.7 Beispiel zum Einlesen der Verzeichnisstruktur
  gp 19.14 Die beiden »Splitter«-Steuerelemente
    gp 19.14.1 Das Steuerelement »Splitter«
    gp 19.14.2 Das Steuerelement »SplitContainer«
  gp 19.15 Das »ListView«-Steuerelement
    gp 19.15.1 Die Klassen des »ListView«-Steuerelements
    gp 19.15.2 Die Eigenschaften der »ListView«
    gp 19.15.3 Listenelemente vom Typ »ListViewItem«
    gp 19.15.4 Das Element »ListViewSubItem«
    gp 19.15.5 Der Typ »ColumnHeader«
    gp 19.15.6 Listenelemente Gruppen zuordnen
    gp 19.15.7 Sortierung der Spalten
    gp 19.15.8 Listenelemente ändern


Galileo Computing

19.12 Registerkarten mit »TabControl«  downtop


Galileo Computing

19.12.1 Die Klasse »TabControl«  downtop

Registerkarten helfen, einen Dialog besser und übersichtlicher zu gliedern und Funktionalitäten zu gruppieren. Typischerweise werden Registerkarten gerne in den Dialogfeldern Optionen benutzt, wie in Abbildung 19.14 sehen ist.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 19.14     Dialog mit Registerkarten

Eine einzelne Registerkarte wird durch den Typ TabPage beschrieben. Alle Registerkarten einer Form bilden einen logischen Verbund und werden, was kaum verwundern dürfte, von einer Auflistung verwaltet. Diese wird vom Steuerelement TabControl bereitgestellt. TabControl kommt aber nicht nur eine Verwaltungsaufgabe zu, es dient im Formular auch als Container aller darin enthaltenen Registerkarten.

Die Auflistung »TabControl.TabPageCollection«

Über die Eigenschaft TabPages des TabControl-Objekts können Sie der Auflistung die erforderlichen Registerkarten hinzufügen. Dazu markieren Sie diese Eigenschaft im Eigenschaftsfenster und klicken auf die Schaltfläche in der Wertespalte. Es öffnet sich daraufhin ein Dialog, über dessen Schaltfläche Hinzufügen eine neue Registerkarte angelegt wird (siehe Abbildung 19.15). Im gleichen Dialog können auch die Eigenschaften der neuen Registerkarte eingetragen werden.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 19.15     Der Dialog zum Hinzufügen einer Registerkarte

Wir wollen uns jetzt ansehen, wie wir dasselbe auch mittels Programmcode realisieren können. Die Eigenschaft TabPages liefert die Referenz auf die Auflistung zurück, die darauf spezialisiert ist, TabPage-Objekte zu verwalten.


Public ReadOnly Property TabPages As TabControl.TabPageCollection

Die Auflistung TabControl.TabPageCollection ist eine innere Auflistung der Klasse TabControl und veröffentlicht Methoden, die uns schon bei anderen Auflistungen begegnet sind, beispielsweise Add, IndexOf, Remove, RemoveAt usw.

Um das Objekt einer Registerkarte per Code zur Auflistung hinzuzufügen, müssen wir die folgenden Anweisungen codieren:


Dim tabControl1 As New TabControl
tabControl1.Controls.Add(tabPage1)

Dabei sei angenommen, dass tabPage1 die Referenz auf eine Instanz von TabPage ist.

Die Eigenschaften eines »TabControl«-Objekts

Die optische Darstellung der Registerkarten kann mit der Eigenschaft Appearance des Registerkarten-Steuerelements festgelegt werden.


Public Property Appearance As TabAppearance

Zur Auswahl stehen drei Optionen: Normal, Buttons und FlatButtons. Die in Abbildung 19.16 dargestellte Form weist drei TabControl-Objekte mit jeweils vier Registerkarten auf. Jedes Objekt hat dabei eine andere Appearance-Einstellung.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 19.16     Darstellungsformen der Registerkarten

Standardmäßig werden alle Registerkarten am oberen Rand des Steuerelements angezeigt. Mit Alignment können Sie die Tabellenreiter aber auch rechts, links oder unten anordnen.


Public Property Alignment As TabAlignment

Der Typ TabAlignment ist eine Enumeration, deren Mitglieder Sie der Tabelle 19.10 entnehmen können.


Tabelle 19.10     Konstanten der Enumeration »TabAlignment«

Member Beschreibung
Bottom Die Registerkarten werden am unteren Rand des Steuerelements angezeigt.
Left Die Registerkarten werden am linken Rand des Steuerelements angezeigt.
Right Die Registerkarten werden am rechten Rand des Steuerelements angezeigt.
Top Die Registerkarten werden am oberen Rand des Steuerelements angezeigt.

Neben Appearance und TabAlignment bestimmt die Eigenschaft MultiLine ganz entscheidend das Erscheinungsbild. Standardmäßig werden alle Karteireiter in einer Zeile angezeigt – selbst dann, wenn die Breite des Registerkarten-Steuerelements nicht mehr für alle Karteireiter ausreicht. Um durch alle Registerkarten navigieren zu können, werden dann zwei Pfeilschalter eingeblendet. Können Sie sich mit dieser Darstellungsweise nicht anfreunden, haben Sie auch die Möglichkeit, mit der Einstellung MultiLine=True die Registerkarten auf mehrere Zeilen aufzuteilen. Die Aufteilung erfolgt dann, falls notwendig, automatisch.

Eine Eigenschaft, um die Anzahl der Zeilen festzulegen, hat das TabControl-Steuerelement nicht. Wenn Sie sich die Dokumentation zu diesem Steuerelement ansehen, werden Sie zwar auf eine Eigenschaft RowCount stoßen, diese ist allerdings schreibgeschützt, liefert demnach nur die Anzahl der Registerkartenzeilen.

SizeMode gibt an, wie die Größe der einzelnen Karteireiter bestimmt wird:


Public Property SizeMode As TabSizeMode

Die möglichen Einstellungen können Sie der Tabelle 19.11 entnehmen.


Tabelle 19.11     Die Enumeration »TabSizeMode«

Member Beschreibung
Normal Alle Karteireiter sind so breit, dass der angezeigte Text darin Platz findet.
Fixed Alle Karteireiter haben dieselbe Breite. Dabei wird die Breite mit der Eigenschaft ItemSize des TabControl-Steuerelements festgelegt.
FillToRight Falls die Reiter über mehrere Zeilen verteilt sind, wird die Breite der einzelnen Reiter so festgelegt, dass die ganze Karteireiterzeile ausgefüllt wird.

Der Abstand zwischen der Beschriftung und dem Rand des Karteireiters kann mit der Eigenschaft Padding beeinflusst werden:


Public Property Padding As Point

Die Einstellung Padding.X legt dabei den Abstand zum linken und rechten Rand des Karteireiters in Pixel fest, Padding.Y den Abstand zum oberen und unteren Rand.

Jeder Karteireiter kann neben der Schrift auch noch ein optisch ansprechendes Bildchen anzeigen. Voraussetzung dafür ist, dass in der Eigenschaft ImageList des TabControl-Objekts ein ImageList-Steuerelement eingetragen ist, das Sie vorher der Form hinzugefügt haben. Als Vorbereitung ist das vollkommen ausreichend, denn die Zuordnung eines Bildchens zu einer bestimmten Registerkarte wird im TabPage-Objekt vorgenommen.

Die Aktivierung einer anderen Registerkarte

Um aus der aktuellen Registerkarte heraus mittels Programmcode eine andere zu aktivieren, stellt die Klasse TabControl zwei Eigenschaften zur Verfügung: SelectedIndex und SelectedTab.


Public Property SelectedIndex As Integer
Public Property SelectedTab As TabPage

Vorausgesetzt, dass tabControl1 der Name des TabControl-Objekts ist, das mindestens drei Registerkarten enthält, können Sie mit


tabControl1.SelectedIndex = 2

die dritte Registerkarte öffnen.

Im .NET Framework wurde TabControl um zwei Methoden ergänzt, die ebenfalls die Aktivierung einer anderen Registerkarte bewirken.


Public Sub SelectTab(Integer)

Sie können dieser Methode den Index, den Namen oder die Referenz der Registerkarte übergeben, die aktiviert werden soll. Genauso überladen ist die neue Methode Deselect. Allerdings wird die der angegebenen Registerkarte folgende Registerkarte zur aktuellen.


Public Sub DeselectTab(Integer)

Zusammenfassung der Eigenschaften von »TabControl«

Fassen wir jetzt die genannten spezifischen Eigenschaften eines TabControl-Objekts in übersichtlicher Form in einer Tabelle zusammen.


Tabelle 19.12     Eigenschaften eines »TabControl«-Objekts

Eigenschaft Beschreibung
Alignment Legt die Anordnung der Karteireiter hinsichtlich des TabControls fest oder ruft diese ab.
Appearance Ruft die visuelle Darstellung der Registerkarten des Steuerelements ab oder legt diese fest.
ImageList Ruft das ListImage-Steuerelement mit den auf den Registerkarten des Steuerelements anzuzeigenden Bildern ab oder legt diese fest.
ItemSize Ruft die Größe der Registerkarten des Steuerelements ab oder legt diese fest.
MultiLine Legt fest, ob die Karteireiter auf mehrere Zeilen aufgeteilt werden können.
Padding Legt den Abstand zwischen dem Beschriftungstext der Karteireiter und dem Rand des Karteireiters fest.
RowCount Ruft die Anzahl der Zeilen der Karteireiter ab.
SelectedIndex Legt den Index der neuen aktuellen Tabseite fest.
SelectedTab Legt die derzeit ausgewählte Tabseite fest.
SizeMode Legt fest, wie die Größe der Registerkarten des Steuerelements bestimmt wird.
TabPages Ruft die Auflistung der Tabseiten in diesem Registerkarten-Steuerelement ab.

Die Ereignisse des »TabControls«

Wenn sich die aktuelle Registerkarte in einem TabControl ändert, treten die folgenden Ereignisse in der angegebenen Reihenfolge ein:

gp  Deselecting
gp  Deselected
gp  Selecting
gp  Selected

Deselecting und Deselected werden vor bzw. nach der Deaktivierung einer Registerkarte ausgelöst, Selecting und Selected analog, wenn eine Registerkarte aktiviert wird.

Deselecting und Selecting liefern dem Ereignishandler ein Objekt vom Typ TabControlCancelEventArgs und können über dessen Eigenschaft Cancel den eingeleiteten Vorgang abbrechen. Das haben wir schon bei anderen Ereignissen ähnlich gesehen, zum Beispiel beim Ereignis FormClosing der Form. Werden Deselected und Selected ausgelöst, ist der Vorgang bereits abgeschlossen. Hier ist es ein Objekt vom Typ TabControlEventArgs, das als ereignisspezifisches Objekt dient.

Bei beiden Args-Objekten können Sie über Eigenschaften den Index und die Referenz der betroffenen Registerkarte abfragen. Und weil dann noch ungeklärt ist, in welchem Ereignis sich alles abspielt, wird Ihnen über Action auch noch dafür eine Auswertung angeboten. Die Werte bezieht Action aus der Aufzählung TabControlAction.


Tabelle 19.13     Die Mitglieder der Enumeration »TabControlAction«

Member Beschreibung
Deselected Ursache ist das TabControl.Deselected-Ereignis.
Deselecting Ursache ist das TabControl.Deselecting-Ereignis.
Selected Ursache ist das TabControl.Selected-Ereignis.
Selecting Ursache ist das TabControl.Selecting-Ereignis.

Ein Ereignis sollte an dieser Stelle noch erwähnt werden, auch wenn es in der neuen Version von .NET Framework durch die eben beschriebenen neuen Ereignisse ersetzt worden ist. Es handelt sich um SelectedIndexChanged. Es wird bei der Änderung der Eigenschaft SelectedIndex ausgelöst und reiht sich damit in die Liste der Ereignisse ein, die direkt mit dem Wechsel einer Registerkarte in Zusammenhang stehen.


Galileo Computing

19.12.2 Objekte vom Typ »TabPage«  toptop

Ein Objekt vom Typ TabPage beschreibt eine einzelne Registerkarte. Die Klasse hat nur wenige spezifische Eigenschaften. Zunächst wäre Text zu nennen, mit der die Beschriftung des Karteireiters festgelegt wird. Wenn Sie großen Wert auf Symbole legen, können Sie neben der Beschriftung der Registerkarte auch ein Bildchen anzeigen. Das setzt allerdings voraus, dass Sie der Form ein ImageList-Steuerelement hinzugefügt haben und dieses der gleichnamigen Eigenschaft des TabControl-Objekts bekannt geben. Welches Bild aus der Bilderliste in der Registerkarte angezeigt wird, ist der Eigenschaft ImageIndex anzugeben. Wollen Sie, dass eine Registerkarte einen QuickInfo-Text anzeigt, weisen Sie den gewünschten Text der Eigenschaft ToolTipText zu.

Steuerelemente in den Registerkarten

Die Gestaltung der Registerkarten ist denkbar einfach. In der Entwicklungsumgebung wählen Sie eine Registerkarte aus und können darin in bekannter Weise die Steuerelemente einfügen. Jede Registerkarte verwaltet die Steuerelemente in einer eigenen Auflistung vom Typ ControlCollection, deren Referenz die Eigenschaft Controls bereitstellt (siehe dazu auch Kapitel 15).

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de